package com.HeJing.Arrays工具类的使用与数组相关的异常;

import java.util.Arrays;

/**
 * ClassName: Arrays工具类的使用
 * Package: com.HeJing.Arrays工具类的使用与数组相关的异常
 * Description:
 *
 * @Author: HeJing
 * @Create: 2023-03-19 20:17
 * @Version: 1.0
 */
public class Arrays工具类的使用 {
    public static void main(String[] args){

        /*
        * 1、Arrays概述:
        *   -> java.util.Arrays类即为操作数组的工具类，包含了用来操作数组(例如排序、搜索等)的各种方法。
        *
        * 2、部分常用方法:
        *   -> 2.1 boolean equals(int[] a, int[] b): 比较两个数组的元素是否依次相等
        *   -> 2.2 String toString(int[] a) : 输出数组元素信息
        *   -> 2.3 void fill(int[] a, int val) : 将指定值填充到数组之中(注意: 数组a中所有元素都会被 val覆盖)
        *   -> 2.4 void sort(int[] a) : 使用快速排序实现的排序操作
        *   -> 2.5 int binarySearch(int[] a, int key) : 二分查找，返回下标，找不到返回一个负数, 使用前提，数组有序
        *
        * */

        arraysTest();

    }


    public static void arraysTest(){
        // 1、boolean equals(int[] a, int[] b): 比较两个数组的元素是否依次相等
        int[] arr1 = new int[]{1, 2, 3};
        int[] arr2 = new int[]{1, 2, 3};
        System.out.println(arr1 == arr2);  // false, 比较地址是否相同
        boolean isEquals = Arrays.equals(arr1, arr2); // true, 比较内容是否相同
        System.out.println(isEquals);

        // 2、String toString(int[] a): 输出数组元素信息
        System.out.println(arr1);  // [I@776ec8df
        System.out.println(Arrays.toString(arr1));  // [1, 2, 3]

        // 3、void fill(int[] a, int val) : 将指定值 val 填充到数组 a 中(注: 数组中所哟肚饿元素都会被val覆盖，如下)
        Arrays.fill(arr1, 1024);
        System.out.println(Arrays.toString(arr1)); // [1024, 1024, 1024]

        // 4、void sort(int[] a) : 使用快速排序实现的排序操作
        int[] arr3 = new int[]{320, 3, -23, 123, 343};
        Arrays.sort(arr3);
        System.out.println(Arrays.toString(arr3));  // [-23, 3, 123, 320, 343]

        // int binarySearch(int[] a, int key): 二分查找，使用前提，数组有序
        int index = Arrays.binarySearch(arr3, 123);
        System.out.println(index);

    }
}














